<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>1_类的基本知识</title>
</head>
<body>
  <script type="text/javascript">
    // 创建一个Parson类
    class Parson {
      // 构造器方法
      constructor(name, age){
        // 构造器中的this是谁？——类的实例对象
        this.name = name
        this.age = age
      }
      // speak方法放在类的原型对象上，供实例使用
      // 通过Parson实例调用speak方法时，speak中的this就是Parson实例
      speak(){
        console.log(`我是${this.name}, 今年${this.age}`)
      }
    }

    // 创建一个Student类，继承于Parson类
    class Student extends Parson {
      constructor(name, age, studentId){
        super(name, age)
        this.studentId = studentId
      }
      // 类方法重写
      speak(){
        console.log(`我是${this.name}, 今年${this.age}, id: ${this.studentId}`)
      }
      study(){
        console.log('学习')
      }
    }
    
    class Car {
      constructor(name, price){
        this.name = name 
        this.price = price
      }
      // 类中可以直接写赋值语句，如下代码的含义是：给 Car 的实例对象添加一个名为 weel 的属性， 值为 4
      weel = 4 
    }
    
    const a1 = new Car('宝马', 1999)
    const a2 = new Car('奥迪', 2999)

    console.log(a1)
    console.log(a2)
    // // 实例化Parson对象
    // const p1 = new Parson('tom', 18)
    // const p2 = new Parson('jerry', 23)
    // const s1 = new Student('校长', 65, 0)

    // console.log('p1', p1)
    // console.log('p2', p2)
    // console.log(s1)
    // // 调用类方法
    // p1.speak()
    // p2.speak()
    // s1.speak()
    // s1.study()
  </script>
</body>
</html>